[JS/백준]{그리디}(1758) 알바생 강호

202209월 30

백준 문제 링크

문제 설명

처음에 생각했을때는 내림차순으로 정렬한후에 0원부터 n-1원까지 빼준다음 다 더하면 문제를 풀수

있을거라고 생각을 했지만 tip이 마이너스가 되는 상태를 고려하지 못해서 틀렸었다.

그후 다른 예제를 더 입력해본결과 마이너스인 tip이 있을경우 for문을 종료해서 팁을 더 받지못하게했다.


코드

const line = require("fs").readFileSync("./input.txt", "utf8");
let [n, ...gestList] = line.trim().split("\n").map(Number);

gestList.sort((a, b) => b - a);

let minus = 0;
let result = [];

for (let i = 0; i < n; i++) {
  const tip = gestList[i] - minus;
  if (tip < 0) {
    break;
  }
  minus++;
  result.push(tip);
}

result = result.reduce((pre, cur) => pre + cur);

console.log(result);